package Datastruct.Tree;

public class BinaryTree {
    private Node root;

    public void setRoot(Node node) {
        this.root = node;
    }

    /*
     * */
    public void preOrder() {
        if (this.root != null) {
            this.root.preOrder();
        } else {
            System.out.println("空二叉树，无法遍历。。。。");
        }

    }

    public void inOrder() {
        if (this.root != null) {
            this.root.inOrder();
        } else {
            System.out.println("空二叉树，无法遍历。。");
        }
    }

    public void postOrder() {
        if (this.root != null) {
            this.root.postInOrder();
        } else {
            System.out.println("空二叉树，无法遍历。。。");
        }

    }

    //前序编号查询
    public Node preNode(int no) {
        if (root != null) {
            return root.preSearch(no);
        } else {
            return null;
        }
    }

    //中序编号查询
    public Node inorderNode(int no) {
        if (root != null) {
            return root.inOrderSearch(no);
        } else {
            return null;
        }
    }


    //后序编号查询
    public Node postOrderNode(int no) {
        if (root != null) {
            return root.postOrdeSearch(no);
        } else {
            return null;
        }
    }

    //删除结点
    public void delNode(int no) {
        if (root != null) {         //删除的是根节点
            if (root.getNo() == no) {
                root = null;
            } else {
                root.delNode(no);
            }
        } else {
            System.out.println("空数，无法删除。。。");
        }
    }

}
